package NiuKe;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 电影院选座
 * 疫情逐步缓和后，电影院终于开业了，但是由于当前仍处于疫情期间，应尽量保持人群不聚集的原则。
 * 所以当小易来电影院选定一排后，尽量需要选择一个远离人群的位置。
 * 已知由0和1组成的数组表示当前排的座位情况,其中1表示已被选座，0表示空座
 * 请问小易所选座位和最近人的距离座位数最大是多少？
 * 有如下假设：至少有一个人已选座，至少有一个空座位，且座位数限制为
 * 2≤length≤1000
 */
public class ChooseSit {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String input = in.nextLine();
        String[] sitsStr = input.split(" ");
        int[] sits = new int[sitsStr.length];
        for (int i = 0; i < sitsStr.length; i++) {
            sits[i] = sitsStr[i].charAt(0) - '0';
        }
        System.out.println(solution(new int[]{1, 0, 1, 0, 1, 0, 1}));
    }

    public static int solution(int[] sits) {
        // 记录空位置与非空位置
        int[] sited = new int[sits.length];
        int[] empty = new int[sits.length];
        int sCount = 0;
        int eCount = 0;
        for (int i = 0; i < sits.length; i++) {
            if (sits[i] == 1) {
                sited[sCount++] = i;
            } else {
                empty[eCount++] = i;
            }
        }

        // 记录每个位置与其最近位置的距离
        int[] records = new int[eCount];
        for (int i = 0; i < eCount; i++) {
            int min = 9999;
            int distance = 0;
            for (int j = 0; j < sCount; j++) {
                distance = empty[i] - sited[j];
                distance = distance < 0 ? -distance : distance;
                min = min >= distance ? distance : min;
            }
            records[i] = min;
        }

        int resultRecords = 0;
        int max = -10;
        for (int i = 0; i < records.length; i++) {
            if(max < records[i]){
                resultRecords = i;
                max = records[i];
            }
        }
        return max;
    }
}

